package com.legendshop.openportal.sdk.model.request;

import com.legendshop.openportal.sdk.model.BaseRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;

import static com.legendshop.openportal.sdk.model.constants.ApiPathConstants.CANCEL_ORDER;

/**
 * 取消订单
 *
 * @author LoengDakChu
 */
@Data
@ApiModel("取消订单请求")
public class OrderCancelRequest extends BaseRequest {

	private static final long serialVersionUID = -6425417215397413367L;

	/**
	 * 非空：是
	 * 订单单号(下单返回的父订单号，或者支付后拆单的子单号。如果已拆单，则只能传子单号过来)
	 */
	@ApiModelProperty("订单号")
	@NotBlank(message = "订单号不能为空")
	private String subNumber;

	/**
	 * 取消理由【必传】；单选；优先传001~005；为其他取消原因时，传详细原因描述（不超过200字）
	 * 001	不想要了
	 * 002	配送时间问题
	 * 003	地址信息填写错误
	 * 004	商品错选/多选
	 * 005	商品价格问题
	 * 传具体原因描述	其他原因（支持用户自主编辑原因，长度不超过200即可）
	 * CancelReasonEnum
	 */
	@Length
	@ApiModelProperty("取消理由")
	@NotBlank(message = "取消理由不能为空")
	private String cancelReason = "001";

	@Override
	@ApiModelProperty(hidden = true)
	public String getApiPath() {
		return CANCEL_ORDER;
	}

}
